package com.study_security.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.study_security.dto.ProjectDTO;
import com.study_security.dto.ProjectFormDTO;
import com.study_security.entity.Project;

import java.util.List;

public interface ProjectService extends IService<Project> {
    /**
     * 根据项目类型查找项目
     *
     * @return 在途项目
     */
    List<Project> getOngoingProjects(Long userId);
    /**
     * 根据项目类型查找项目
     *
     * @return 已结项项目项目
     */
    List<Project> getCompletedProjects(Long userId);
    /**
     *
     * @return 所有项目
     */
    List<Project> getAllProject();
    /**
     * 根据项目名查找在途项目
     * @param keyword 项目名
     * @return 在途项目
     */
    List<Project> searchOngoingProjects(Long userId,String keyword);
    /**
     * 根据项目类型查找项目
     * @param keyword 项目名
     * @return 已结项项目
     */
    List<Project> searchCompletedProjects(Long userId,String keyword);

    /**
     * 新增项目
     *
     * @param project 项目实体
     * @return 是否成功
     */
    boolean addProject(Long userId, Project project);
    boolean projectNameExists(String projectName); // 新方法

    /**
     * 根据用户ID获取该用户拥有的所有项目
     *
     * @param userId 用户ID
     * @return 用户拥有的所有项目
     */
    List<ProjectDTO> getUserProjects(Long userId);

    /**
     * 根据项目ID获取项目概况
     *
     * @param projectId 项目ID
     * @return 项目概况
     */
    Project getProjectById(Long projectId);

    List<Project> getAllProjects();
    List<ProjectFormDTO> getAllProjectFormDTOByUserId(Long userId);
    List<Project> getAllProjectByUserId(Long userId);


    List<ProjectFormDTO> getAllProjectFormDTO();

}
